package cn.yx.common.core.pojo.singletable;

import cn.yx.common.core.pojo.base.BaseCond;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>单表对应的Cond条件基类</p>
 *
 * @author Wgssmart
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "SingleCond", description = "单表查询对象")
public class SingleCond extends BaseCond {

    @ApiModelProperty(value = "ID")
    private Long id;

    @ApiModelProperty(value = "多个ID")
    private List<Long> idIn;

    @ApiModelProperty(value = "版本号", example = "1")
    private Integer version;

    @ApiModelProperty(value = "版本号范围-最小值")
    private Integer versionMin;

    @ApiModelProperty(value = "版本号范围-最大值")
    private Integer versionMax;

    @ApiModelProperty(value = "是否激活，0否1是", example = "1")
    private Byte isActive;

    @ApiModelProperty(value = "创建人ID")
    private Long createBy;

    @ApiModelProperty(value = "创建时间", example = "2022-12-07 12:00:00")
    private Date createTime;

    @ApiModelProperty(value = "创建时间范围-最小值", example = "2022-12-07 08:00:00")
    private Date createTimeMin;

    @ApiModelProperty(value = "创建时间范围-最大值", example = "2022-12-07 18:00:00")
    private Date createTimeMax;

    @ApiModelProperty(value = "更新人ID")
    private Long updateBy;

    @ApiModelProperty(value = "更新时间", example = "2022-12-07 12:00:00")
    private Date updateTime;

    @ApiModelProperty(value = "更新时间范围-最小值", example = "2022-12-07 08:00:00")
    private Date updateTimeMin;

    @ApiModelProperty(value = "更新时间范围-最大值", example = "2022-12-07 18:00:00")
    private Date updateTimeMax;

    /**
     * 排序属性及排序规则
     */
    @ApiModelProperty(value = "排序字段Map，key为字段名称，value为排序方式")
    private Map<String, String> sortFields;

    /**
     * 需要模糊查询的属性
     */
    @ApiModelProperty(value = "模糊搜索字段")
    private List<String> likeFields;

}
